package com.meituan.sdk.model.wmoperNg.order.riderPosition;

import com.meituan.sdk.annotations.ApiMeta;
import com.google.gson.reflect.TypeToken;
import javax.validation.constraints.NotBlank;
import java.lang.reflect.Type;
import com.meituan.sdk.internal.utils.JsonUtil;
import com.google.gson.annotations.SerializedName;
import javax.validation.constraints.NotNull;
import com.meituan.sdk.MeituanResponse;
import com.meituan.sdk.MeituanRequest;

/**
* 自配订单同步配送信息
* This file was automatically generated.
*/
@ApiMeta(
    path = "/wmoper/ng/order/riderPosition",
    businessId = 16,
    apiVersion = "10062",
    apiName = "rider_position",
    needAuth = true
)
public class RiderPositionRequest implements MeituanRequest<String> {
    /**
    * <p>订单号</p>
    */
    @NotNull(message = "orderId不能为空")
    @SerializedName("orderId")
    private Long orderId;
    /**
    * <p>第三方配送商物流单号，字段不为空时长度必须小于32位</p>
    */
    @SerializedName("thirdCarrierId")
    private String thirdCarrierId;
    /**
    * <p><span style="color: rgba(0, 0, 0, 0.87)"><font style="font-size:14px;line-height:22px" data-size="14">code 说明 0 配送单发往配送 10 配送单已确认 15 骑手已到店 20 骑手已取餐 40 骑手已送达 100 配送单已取消</font></span></p>
    */
    @NotNull(message = "logisticsStatus不能为空")
    @SerializedName("logisticsStatus")
    private Integer logisticsStatus;
    /**
    * <p><span style="color: rgba(0, 0, 0, 0.87)"><font style="font-size:14px;line-height:22px" data-size="14">配送人名称</font></span></p>
    */
    @NotBlank(message = "courierName不能为空")
    @SerializedName("courierName")
    private String courierName;
    /**
    * <p><span style="color: rgb(88, 90, 110)"><font style="font-size:14px;line-height:22px" data-size="14">配送员联系电话。 格式为纯数字，仅支持11位手机号、固定电话、400电话、用“#”“_”“,”拼接分机号的电话</font></span></p>
    */
    @NotBlank(message = "courierPhone不能为空")
    @SerializedName("courierPhone")
    private String courierPhone;
    /**
    * <p data-diff-id="ct-diff-id-300f803d-a412-49be-aa1d-e8e6ce169bef">第三方配送方式（配送code：配送方）</p><p data-diff-id="ct-diff-id-7c8e292c-6d5f-46e2-9bf2-d16a1b0e51e2">10001：顺丰<br>10002：达达<br>10003：闪送<br>10004：蜂鸟<br>10005：UU跑腿<br>10006：快跑者<br>10007：极客快送<br>10008：点我达<br>10009：同达<br>10010：生活半径<br>10011：邻趣<br>10012：趣送<br>10013：快服务<br>10014：菜鸟新配盟<br>10015：商家自建配送<br>10016：风先生<br>10017：其他<br>10018：美团配送<br>10019：来答配送<br>10020：好急跑腿<br>10021：送个东西跑腿<br>10022：靠谱送<br>10023：快男跑腿<br>10024：曹操跑腿<br>10025：爱跑腿<br>10026：裹小递<br>10027：抖送<br>10028：行优达<br>10029：新闪送<br>10031：帮啦<br>10032：好急<br>10033：大有配送<br>10035：哪都达<br>10038：开始送<br>10040：懒猪快送<br>10041：上海食派士商贸发展有限公司<br>10042：快狗打车<br>10043：超跑同城<br>10044：365跑腿网<br>10045：骑帮闪送<br>10046：一步同城<br>10047：跑腿联盟<br>10048：悟空快跑<br>10049：送小闲<br>10050：曹操送<br>10051：货拉拉企业版<br>10052：大圣急送<br>10053：趣来达<br>10054：梁跑跑<br>10055：蜂骑快送<br>10056：滴滴货运<br>10057：中里办<br>10058：云小跑<br>10059：小U急送<br>10060：腿腿骑行配送<br>10061：校内专送<br>10062：闪跑侠<br>10063：校园外卖购<br>10064：同城懒人<br>10065：快达<br>10066：同达快送<br>10067：单满多<br>10068：逸猫快送<br>10069：快驼<br>10070：微顶跑腿<br>10071：荣宸快送<br>10072：金骑配送<br>10073：代帮跑腿<br>10074：来啦跑腿<br>10075：小羚配送<br>10076：必宿校园<br>10077：荣帮<br>10078：同用跑腿<br>10079：迅达配送<br>10080：兰陵跑腿<br>10081：麻利跑腿<br>10082：温代配送<br>10083：响送全成<br>10111：DD骑士<br>10084：乐外卖<br>10085：闪急送<br>10086：黑骑配送<br>10087：神兵跑腿<br>10089：丰和同城<br>10090：超风速送<br>10091：上铺闪电侠<br>10092：呼拉跑腿<br>10093：微刷快点<br>10094：云快卖<br>10113：八戒跑腿<br>10095：思雨同城急送<br>10114：滴滴快送<br>10096：25度<br>10115：秒先锋<br>10097：信速达<br>10098：送道<br>10099：东海速送<br>10117：叮当同城配送<br>10100：送大侠<br>10101：轻云送<br>10102：送佳<br>10103：四海达<br>10118：大帝同城<br>10119：一点即达<br>10120：星途配送<br>10104：达先蜂<br>10105：快马跑腿<br>10106：业达人汇<br>10107：0851跑腿<br>10121：交点配送<br>10108：珠海递时代<br>10123：邦邦马<br>10124：一点宿达<br>10125：兔哆邦<br>10126：涛诚快送<br>10127：C单小队<br>10128：坚裹帮<br>10129：送来达<br>10130：美团汽车送<br>10131：及跑跑<br>10132：速送<br>10133：稳达在线<br>10134：大风配送<br>10135：翔豪同城配送<br>10136：闪泉跑腿<br>10137：镖统<br>10138：跑跑快送<br>10139：星橙送<br>10140：呼呼代跑<br>10141：冲冲冲超级送<br>10142：鲁邮同城<br>10143：圣骑配送<br>10144：FD配送<br>10145：长鹿跑腿<br>10146：聚城达<br>10147：来云台<br>10148：达斯罕跑腿<br>10149：洪洪送<br>10150：货拉拉</p>
    */
    @NotNull(message = "thirdLogisticsId不能为空")
    @SerializedName("thirdLogisticsId")
    private Integer thirdLogisticsId;
    /**
    * <p><span style="color: rgba(0, 0, 0, 0.87)"><font style="font-size:14px;line-height:22px" data-size="14">骑手当前的纬度</font></span></p>
    */
    @NotBlank(message = "latitude不能为空")
    @SerializedName("latitude")
    private String latitude;
    /**
    * <p><span style="color: rgba(0, 0, 0, 0.87)"><font style="font-size:14px;line-height:22px" data-size="14">骑手当前的经度</font></span></p>
    */
    @NotBlank(message = "longitude不能为空")
    @SerializedName("longitude")
    private String longitude;
    /**
    * <p>骑手信息采集时间戳</p>
    */
    @NotNull(message = "backFlowTime不能为空")
    @SerializedName("backFlowTime")
    private Integer backFlowTime;
    /**
    * <p><span style="color: "><font style="font-size:14px;line-height:22px" data-size="14">配送员电话类型。0是真实号，1是隐私号</font></span></p>
    */
    @SerializedName("courierPhoneType")
    private Integer courierPhoneType;

    public Long getOrderId() {
        return orderId;
    }
    public void setOrderId(Long orderId) {
        this.orderId = orderId;
    }
    public String getThirdCarrierId() {
        return thirdCarrierId;
    }
    public void setThirdCarrierId(String thirdCarrierId) {
        this.thirdCarrierId = thirdCarrierId;
    }
    public Integer getLogisticsStatus() {
        return logisticsStatus;
    }
    public void setLogisticsStatus(Integer logisticsStatus) {
        this.logisticsStatus = logisticsStatus;
    }
    public String getCourierName() {
        return courierName;
    }
    public void setCourierName(String courierName) {
        this.courierName = courierName;
    }
    public String getCourierPhone() {
        return courierPhone;
    }
    public void setCourierPhone(String courierPhone) {
        this.courierPhone = courierPhone;
    }
    public Integer getThirdLogisticsId() {
        return thirdLogisticsId;
    }
    public void setThirdLogisticsId(Integer thirdLogisticsId) {
        this.thirdLogisticsId = thirdLogisticsId;
    }
    public String getLatitude() {
        return latitude;
    }
    public void setLatitude(String latitude) {
        this.latitude = latitude;
    }
    public String getLongitude() {
        return longitude;
    }
    public void setLongitude(String longitude) {
        this.longitude = longitude;
    }
    public Integer getBackFlowTime() {
        return backFlowTime;
    }
    public void setBackFlowTime(Integer backFlowTime) {
        this.backFlowTime = backFlowTime;
    }
    public Integer getCourierPhoneType() {
        return courierPhoneType;
    }
    public void setCourierPhoneType(Integer courierPhoneType) {
        this.courierPhoneType = courierPhoneType;
    }


    @Override
    public MeituanResponse<String> deserializeResponse(String response) {
        Type type = new TypeToken<MeituanResponse<String>>(){}.getType();
        return JsonUtil.fromJson(response, type);
    }
    @Override
    public String serializeToJson() {
        return JsonUtil.toJson(this);
    }


    @Override
    public String toString() {
        return "RiderPositionRequest{" + "orderId=" + orderId + "," + "thirdCarrierId=" + thirdCarrierId + "," + "logisticsStatus=" + logisticsStatus + "," + "courierName=" + courierName + "," + "courierPhone=" + courierPhone + "," + "thirdLogisticsId=" + thirdLogisticsId + "," + "latitude=" + latitude + "," + "longitude=" + longitude + "," + "backFlowTime=" + backFlowTime + "," + "courierPhoneType=" + courierPhoneType + "}";
    }
}
